﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;

namespace CityGames
{
    public class ENNoticia
    {
        private int idNoticia;
        private string titulo;
        private string subtitulo;
        private string idCreador;
        private string idPlataforma;
        private string idJuego;
        private DateTime fechaReg;

        public string Titulo
        {
          get { return titulo; }
          set { titulo = value; }
        }
        public string Subtitulo
        {
            get { return subtitulo; }
            set { subtitulo = value; }
        }
        public int IdNoticia
        {
            get { return idNoticia; }
            set { idNoticia = value; }
        }
        public string IdCreador
        {
            get { return idCreador; }
            set { idCreador = value; }
        }
        public string IdPlataforma
        {
            get { return idPlataforma; }
            set { idPlataforma = value; }
        }
        public string IdJuego
        {
            get { return idJuego; }
            set { idJuego = value; }
        }
        public DateTime FechaReg
        {
            get { return fechaReg; }
            set { fechaReg = value; }
        }
        
        static private CADNoticia cadNoticia = new CADNoticia();

        /*________________________Javi___________________________________*/

        /// <summary>
        /// Constructor por defecto de la clase Noticia.
        /// Inicializa las variables
        /// </summary
        public ENNoticia()
        {
            try
            {
                idNoticia = 0;
                titulo ="";
                subtitulo ="";
                idCreador ="";
                idPlataforma = "";
                idJuego = "";
                fechaReg = DateTime.Now;
            }
            catch(Exception ex)
            {
                throw ex;
            }    
        }

        /// <summary>
        /// Funcion para obtener los datos de una noticia a partir de su id
        /// </summary>
        /// <param name="idNoticia">
        /// Número de la noticia de la que desea obtener los datos</param>
        /// <returns>
        /// Devuelve una noticia</returns>
        public ENNoticia DatosNoticia(int idNoticia)
        {
            try
            {
                cadNoticia.DatosNoticia(ref idNoticia, ref titulo, ref subtitulo, ref idPlataforma, ref idJuego, ref idCreador, ref fechaReg);
                this.IdNoticia = idNoticia;
                this.Titulo = titulo;
                this.Subtitulo = subtitulo;
                this.IdPlataforma = idPlataforma;
                this.IdJuego = idJuego;
                this.IdCreador = idCreador;
                this.FechaReg = fechaReg;
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return this;
        }

        /// <summary>
        /// Funcion para obtener la id de la ultima
        /// </summary>
        /// <returns>
        /// Devuelve la id de la ultima noticia</returns>
        public int UltimoID()
        {
            int resultado = 0;
            try
            {
                resultado = cadNoticia.UltimoID();
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return resultado;
        }

        /// <summary>
        /// Funcion para comprobar si existe una noticia
        /// </summary>
        /// <param name="id">
        /// Número de noticia de la que queremos comprobar su existencia</param>
        /// <returns>
        /// Devuelve verdadero en caso de que exista</returns>
        public bool Existe(int id)
        {
            bool resultado = false;
            try
            {
                resultado = cadNoticia.Existe(id);
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return resultado;
        }

        /// <summary>
        /// Funcion para obtener las noticias de una plataforma
        /// </summary>
        /// <param name="plataforma">
        /// Plataforma de la que queremos obtener las noticias</param>
        /// <returns>
        /// Devuelve el DataSet con las noticias de la plataforma</returns>
        public DataSet ObtenerNoticiasdePlataforma(string plataforma)
        {
            DataSet resultado;

            try
            {
                resultado = cadNoticia.ObtenerNoticiasdePlataforma(plataforma);
            }
            catch (Exception ex)
            {
                throw ex;
            }

            return resultado;
        }

        /// <summary>
        /// Funcion para insertar una noticia
        /// </summary>
        /// <param name="titulo">
        /// Titulo de la noticia</param>
        /// <param name="subtitulo">
        /// Subtitulo de la noticia</param>
        /// <param name="idCreador">
        /// Creador de la noticia</param>
        /// <param name="idPlataforma">
        /// Plataforma de la noticia</param>
        /// <param name="idJuego">
        /// Juego de la que queremos obtener las noticias</param>
        /// <returns>
        /// Devuelve true si ha insertado la noticia</returns>
        public bool NuevaNoticia(string titulo, string subtitulo, string idCreador, string idPlataforma, string idJuego) 
        {
            bool resultado = false;

            try
            {
                resultado = cadNoticia.NuevaNoticia(titulo, subtitulo, idCreador, idPlataforma, idJuego);
            }
            catch (Exception ex)
            {
                throw ex;
            }

            return resultado;
        }

        /*________________________Mirellys___________________________________*/
        public DataSet ObtenerXNoticias(int cantNoticias)
        {
            DataSet resultado = null;

            try
            {
               resultado = cadNoticia.ObtenerXNoticias(cantNoticias);
            }
            catch (Exception ex)
            {
                throw ex;
            }

            return resultado;

        }
    }
}
